package notifiers;

import java.util.List;

import models.Nutri;
import models.Paciente;
import models.Perfil;
import models.Plato;
import models.Promo;
import models.TemplatePlan;
import play.mvc.Mailer;
import controllers.CustomCRUD;

public class Notificador extends Mailer {
	
	private static String EMAIL_FROM = "info@jymsoft.com.ar";
	
	public static void emailConfirmacion(String usuario, String email, String nutri, String link) {
		setSubject("Confirmación como Paciente aDieta");
		addRecipient(email);
		setFrom(EMAIL_FROM);
		send(usuario, nutri, link);
	}
	
	public static void emailBienvenida(String nombre, String email) {
		setSubject("Bienvenido %s al sitio www.adietaonline.com.ar", nombre);
		addRecipient(email);
		setFrom(EMAIL_FROM);
	    send(nombre, email);
	}
	
	public static void emailDesasignarNutricionista(String nombreNutricionista, String mailNutricionista, String nombrePaciente, String mailPaciente) {
		setSubject("Ud. ha dejado de ser el nutricionista de %s.", nombrePaciente);
		addRecipient(mailNutricionista);
		setFrom(EMAIL_FROM);
	    send(nombreNutricionista, nombrePaciente, mailPaciente,  mailNutricionista);
	}
	
	public static void emailAsignacionPlanAPaciente(Paciente paciente, Nutri nutri, TemplatePlan templatePlan) {
		setSubject("Notificación de Asignación de Planes");
		addRecipient(paciente.getEmail());
		setFrom(EMAIL_FROM);
		send(paciente, nutri, templatePlan);
	}
	
	public static void emailDesasignarPaciente(String nombreNutricionista, String mailNutricionista, String nombrePaciente, String mailPaciente) {
		setSubject("Ud. ha dejado de ser el paciente de %s.", nombreNutricionista);
		addRecipient(mailPaciente);
		setFrom(EMAIL_FROM);
	    send(nombreNutricionista, nombrePaciente, mailNutricionista);
	}
	
	public static void emailObjetivoManualAsignado(String nombreNutricionista, String nombrePaciente, String mailPaciente) {
		setSubject("¡%s te asignó un objetivo!", nombreNutricionista);
		addRecipient(mailPaciente);
		setFrom(EMAIL_FROM);
		send(nombreNutricionista, nombrePaciente, mailPaciente);
	}
	
	public static void emailInvitacion(String email, String nutri, String link) {
		setSubject("Invitación a utilizar aDieta");
		addRecipient(email);
		setFrom(EMAIL_FROM);
		send(nutri, link);
	}
	
	public static void emailPromocion(Promo promo, List<Perfil> destinatarios) {
		
		if (!destinatarios.isEmpty()) {
			
			String nombreResto = CustomCRUD.getUsuarioLogueado().getNombre();
			
			setFrom(EMAIL_FROM);
			setSubject("aDieta le acerca una nueva promoción de " + nombreResto);
			
			for (Perfil perfil : destinatarios) {
				addRecipient(perfil.getPaciente().getEmail());
			}
			
			String desc = promo.getDescripcion();
			
			send(desc, nombreResto);
		}
		
	}
	
	public static void emailComentarioNutri(Nutri nutri, Paciente paciente, String comentario) {
		setSubject("Comentario del Nutricionista %s", nutri.getNombre());
		addRecipient(paciente.getEmail());
		setFrom(EMAIL_FROM);
		send(paciente, comentario);
	}

	public static void emailAsignarPlato(Paciente paciente, Plato plato) {
		setSubject("Asignación de Plato");
		addRecipient(paciente.getEmail());
		setFrom(EMAIL_FROM);
		Nutri nutri = paciente.getNutricionista();
		send(paciente, plato, nutri);
	}
	
}
